-
Notifications
You must be signed in to change notification settings - Fork 415
[APPack] Updated How APPack Adheres to Given Placement #2934
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Merged
AlexandreSinger
merged 2 commits into
verilog-to-routing:master
from
AlexandreSinger:feature-appack
Mar 19, 2025
Merged
[APPack] Updated How APPack Adheres to Given Placement #2934
AlexandreSinger
merged 2 commits into
verilog-to-routing:master
from
AlexandreSinger:feature-appack
Mar 19, 2025
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
@amin1377 FYI |
fbcf794
to
ff26e38
Compare
vaughnbetz
approved these changes
Mar 18, 2025
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
A few comments, but LGTM -- merge whenever you like.
ff26e38
to
c48d573
Compare
The original implementation of APPack was focused on reconstructing a given flat placement. This can cause issues if the given flat placement disagrees with the decisions of the packer. Instead, updated APPack so that it treats the flat placement as a hint to help guide how it performs clustering. Added the following new features: - APPack computes the location of clusters based on the centroid of the molecules packed within. - APPack attenuates the gain terms of candidates based on their distance from the cluster. - APPack drops candidates which are too far from the cluster being created. Remove adding molecules near to the position of the cluster. This had similar affects to unrelated clustering and should be investigated separately later. With these changes to APPack, the AP flow now improves WL of circuits by 1-3% at the expense of up to 15% runtime compared to the default VPR flow.
c48d573
to
a6cb33d
Compare
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
The original implementation of APPack was focused on reconstructing a given flat placement. This can cause issues if the given flat placement disagrees with the decisions of the packer.
Instead, updated APPack so that it treats the flat placement as a hint to help guide how it performs clustering.
Added the following new features:
Remove adding molecules near to the position of the cluster. This had similar affects to unrelated clustering and should be investigated separately later.
With these changes to APPack, the AP flow now improves WL of circuits by 1-3% at the expense of up to 15% runtime compared to the default VPR flow.
Results of the AP flow after this change compared to VPR with default options and timing analysis turned off:
9 Largest vtr_chain circuits:
Titan circuits:
Koios circuits:
These results are surprisingly good given that the partial legalizer does not take into account block types.